<?php

/* 
 有解返回值     {
                 "msg":"ok",   // 有结果
                 "big":"1.2.2.42.9.22",  大于的版本
                 "digit":4    区分在第四位(第三个点后)
                } 
           
                 
 相等返回值     {"msg":"the same"}  //  相等情况下返回值

 */

 function versionCompare($v1, $v2)
 {
    if(!$v1 || !$v2){
         echo json_encode(array('msg'=>'2 parameters must given'));
    }

    //  假设v1 大，v2 小
    $big = $v1;
    $small = $v2;

    $arr1 =  explode(".", $v1);            
    $arr2 =  explode(".", $v2);            
   
    // 假设数组arr1 长度小
    $short = $arr1;
    $long = $arr2;

    // 比较长度 ，并假设 长度不大(小或相等)的 版本大
    if(count($arr1) > count($arr2)){
      $long = $arr1;
      $short = $arr2;
      $big = $v2;
      $small = $v1;
    }

    // 对比
    $res = array('msg'=>'ok');
    foreach ($short as $key => $val) {
        if(intval($val) > intval($long[$key])){           
          $res['big'] = $big;
          $res['digit'] = $key+1; 
          continue;
        }elseif(intval($val) < intval($long[$key])){
          $res['big'] = $small;
          $res['digit'] = $key+1;
          continue;
        }
    }

    // 得到结果 俩版本相等或长度大的 版本大 
    if(!$res['big']){

       // 若长度不相等，则长度大的 版本大 	
       if($long[count($short)]){
         $res['big'] = $small;
         $res['digit'] = count($short)+1;  
       }else{
       	 // 相等
         $res['msg'] = 'the same';  
       } 
    }	  
    echo json_encode($res);
 }

 
 $v1 =  $_GET['v1']; 
 $v2 =  $_GET['v2']; 

 versionCompare($v1,$v2);

?>